www.gusucode.com > tsp(旅行商问题) 利用matlab遗传算法、模拟退火算法以及lingo动态规划求解 > tsp(旅行商问题) 利用matlab遗传算法、模拟退火算法以及lingo动态规划求解/matlab/sa/trp.m
function [f,T]=trp(d,t0,tf) % f为目标函数最优值,T为最优路线,d为距离矩阵,t0为初始温度,tf为结束温度 [m,n]=size(d); L=100*n; t=t0; pi0=1:n; min_f=0; for k=1:(n-1) min_f=min_f+d(pi0(k),pi0(k+1)); end min_f=min_f+d(pi0(n),pi0(1)); p_min=pi0; while t>tf for k=1:L kk=rand; [d_f,pi_1]=exchange_2(pi0,d); r_r=rand; if d_f<0 pi0=pi_1; elseif exp(d_f/t)>r_r pi0=pi_1; else pi0=pi0; end end f_temp=0; for k=1:n-1 f_temp=f_temp+d(pi0(k),pi0(k+1)); end f_temp=f_temp+d(pi0(n),pi0(1)); if min_f>f_temp min_f=f_temp; p_min=pi0; end t=0.87*t; end f=min_f; T=p_min;